﻿// -----------------------------------------------------------------------
// <copyright file="FrameNetManager.cs" company="">
// TODO: Update copyright text.
// </copyright>
// -----------------------------------------------------------------------

namespace TaleGeneratorModel
{
	using System;
	using System.Collections.Generic;
	using System.Linq;
	using System.Text;
using CommonStructs;

	/// <summary>
	/// TODO: Update summary.
	/// </summary>
	public class FrameNetManager
	{
		TaleClasses frameNet;
		public FrameNetManager(TaleClasses frameNet)
		{
			this.frameNet = frameNet;
		}

		public bool MayDeleteLink(int from, int to, LinkType type)		
		{
			if (type == LinkType.IsA)
				return true;
			else
			{
				Frame ownerFrame = frameNet.Frame.SingleOrDefault(x => x.Id == from);
				Frame subframe = frameNet.Frame.SingleOrDefault(x => x.Id == to);
				Frame ownerParent = ownerFrame.Is_aFrame;
				// если субфрейм с таким именем есть в родителе, значит субфрейм унаследован и связь нельзя удалять
				if (ownerParent != null && ownerParent.Slot.SingleOrDefault(x => x.Name == subframe.Name) != null)
					return false;
				return true;
			}
		}

		public void DeleteLink(int from, int to, LinkType type)
		{ }

		public void AddLink(int from, int to, LinkType type)
		{ }
	}
}
